访问电脑版页面

导航:老古开发网手机版51单片机51单片机汇编编程

CRC16-STANDARD的快速算法,51汇编

导读:
关键字:
CRC16-STANDARD的快速算法
 
;入口: R0-原CRC结果高位 R1-原CRC结果低位R2-下个参与计算的字节值
;(最开始可设置R0=0,R1=0,R2=第一字节值)
;出口: R0-CRC结果高位 R1-CRC结果低位
 
影响:A,DPH,DPL
CRC16:
PUSH DPH
PUSH DPL
PUSH ACC
MOV A,R1
XRL A,R2
MOV DPH,#20h
MOV DPL,A
CLR A
MOVC A,@A+DPTR
XRL A,R0
MOV R1,A
INC DPH
CLR A
MOVC A,@A+DPTR
MOV R0,A
POP ACC
POP DPL
POP DPh
RET
NOP
NOP
LJMP MAIN
ORG 2000H ;(根据你的实际情况而定)
CRCTABLE:
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
001H,0C0H,080H,041H,000H,0C1H,081H,040H,000H,0C1H,081H,040H,001H,0C0H,080H,041H
DB
000H,0C1H,081H,040H,001H,0C0H,080H,041H,001H,0C0H,080H,041H,000H,0C1H,081H,040H
 
DB
000H,0C0H,0C1H,001H,0C3H,003H,002H,0C2H,0C6H,006H,007H,0C7H,005H,0C5H,0C4H,004H
DB
0CCH,00CH,00DH,0CDH,00FH,0CFH,0CEH,00EH,00AH,0CAH,0CBH,00BH,0C9H,009H,008H,0C8H
DB
0D8H,018H,019H,0D9H,01BH,0DBH,0DAH,01AH,01EH,0DEH,0DFH,01FH,0DDH,01DH,01CH,0DCH
DB
014H,0D4H,0D5H,015H,0D7H,017H,016H,0D6H,0D2H,012H,013H,0D3H,011H,0D1H,0D0H,010H
DB
0F0H,030H,031H,0F1H,033H,0F3H,0F2H,032H,036H,0F6H,0F7H,037H,0F5H,035H,034H,0F4H
DB
03CH,0FCH,0FDH,03DH,0FFH,03FH,03EH,0FEH,0FAH,03AH,03BH,0FBH,039H,0F9H,0F8H,038H
DB
028H,0E8H,0E9H,029H,0EBH,02BH,02AH,0EAH,0EEH,02EH,02FH,0EFH,02DH,0EDH,0ECH,02CH
DB
0E4H,024H,025H,0E5H,027H,0E7H,0E6H,026H,022H,0E2H,0E3H,023H,0E1H,021H,020H,0E0H
DB
0A0H,060H,061H,0A1H,063H,0A3H,0A2H,062H,066H,0A6H,0A7H,067H,0A5H,065H,064H,0A4H
DB
06CH,0ACH,0ADH,06DH,0AFH,06FH,06EH,0AEH,0AAH,06AH,06BH,0ABH,069H,0A9H,0A8H,068H
DB
078H,0B8H,0B9H,079H,0BBH,07BH,07AH,0BAH,0BEH,07EH,07FH,0BFH,07DH,0BDH,0BCH,07CH
DB
0B4H,074H,075H,0B5H,077H,0B7H,0B6H,076H,072H,0B2H,0B3H,073H,0B1H,071H,070H,0B0H
DB
050H,090H,091H,051H,093H,053H,052H,092H,096H,056H,057H,097H,055H,095H,094H,054H
DB
09CH,05CH,05DH,09DH,05FH,09FH,09EH,05EH,05AH,09AH,09BH,05BH,099H,059H,058H,098H
DB
088H,048H,049H,089H,04BH,08BH,08AH,04AH,04EH,08EH,08FH,04FH,08DH,04DH,04CH,08CH
DB
044H,084H,085H,045H,087H,047H,046H,086H,082H,042H,043H,083H,041H,081H,080H,040H
NOP
NOP
LJMP MAIN
来源:   作者:  2005/3/13 0:02:00
栏目: [ 51单片机汇编编程]

相关阅读

在 KEIL C51 中如何直接嵌入汇编

在C51中如何实现汇编的DA A指令?

#pragma asm是什么意思?

51单片机对交通灯的控制设计

请问怎样用89C51采集多路脉冲信号?

CRC16-STANDARD的快速算法,51汇编

双字节十六进制小数转换成双字节BCD码小数

MCS-51单片机汇编伪指令的用法解析

MCS-51单片机实用子程序库

C51单片机的压缩BCD码相加程序

汇编中的ORG 0X0000H 在C51中如何实现

51单片机汇编语言-延时程序的延时时间

MCS-51单片机布尔处理功能解析

16位数据传送指令(1条)——mcs51单片机汇编语言

MCS-51单片机地址指针的应用

MCS-51单片机实用子程序库--浮点数除法

MSC-51单片机的3字节和4字节浮点数计算程序分析

使用汇编,中断响应后RETI返回后没有回到原处,而是回到另外一处,如何解决

单片机双机并行通信中所遇问题

51单片机的汇编语言指令中英文对照